<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

//引用对应的命名空间
use Gregwar\Captcha\CaptchaBuilder;
use Gregwar\Captcha\PhraseBuilder;
use Session;
use Input;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use PhpSpec\Listener\RerunListener;
use App\User;


class LoginController extends Controller
{
    /**
     * @author  何欢
     * @time    2017年8月26日 20:07:06     
     * @return  登录页面
     */
    public function index()
    {
        //登录页面
        return view('admin.login.index');
    }

    /**
     * @author  何欢
     * @time    2017年8月26日 22:21:46    
     * @return  后台首页 
     */
    public function do_login(Request $request)
    {
        $input =  Input::except('_token');

//      2 输入的数据是否符合表单验证规范
//       make方法的三个参数
//       参数1 要参与验证的数据
//       参数2 验证规则
//       参数3  设置错误的提示信息

        $rule = [
            'username'=>'required|between:5,12',
            'password'=>'required|between:6,18'
        ];

        $mess = [
            'username.required'=>'用户名必须输入',
            'username.between'=>'用户名的长度在5-12位之间',
            'password.required'=>'密码必须输入',
            'password.between'=>'密码的长度在6-18位之间'
        ];
        $validator = Validator::make($input, $rule,$mess);
//        如果验证失败
        if($validator->fails()){
            return back()
                ->withErrors($validator)
                ->withInput();
        }
//      3 验证 用户名 密码  验证码是否输入正确   逻辑验证

       $user =  User::where('username',$input['username'])->first();
        if(empty($user)){
            return back()->with('errors','此用户不存在，请先注册');
        }

       
       if(!Hash::check($input['password'],$user->password)){
           return back()->with('errors','密码不正确');
       }

        if($input['code'] != session('code')){
            return back()->with('errors','验证码不正确');
        }
        // 把登录的用户存入session
        // \Session::flash('user',$user);
        session(['user'=>$user]);

        //      4 如果正确跳转到后台首页 ，如果不正确返回
        return redirect('admin/index');
    }


    /**
     * @author  何欢
     * @time    2017年8月26日 22:05:50    
     * @return  验证码图片
     */
    public function code($tmp)
    {
         $phrase = new PhraseBuilder;
        // 设置验证码位数
        $code = $phrase->build(4);
        // 生成验证码图片的Builder对象，配置相应属性
        $builder = new CaptchaBuilder($code, $phrase);
        // 设置背景颜色
        $builder->setBackgroundColor(220, 210, 230);
        $builder->setMaxAngle(28);
        $builder->setMaxBehindLines(2);
        $builder->setMaxFrontLines(2);
        // 可以设置图片宽高及字体
        $builder->build($width = 100, $height = 34, $font = null);
        // 获取验证码的内容
        $phrase = $builder->getPhrase();
        // 把内容存入session
        \Session::flash('code', $phrase);
        // 生成图片
        header("Cache-Control: no-cache, must-revalidate");
        header("Content-Type:image/jpeg");
        $builder->output();
    }

    /**
     * 退出登录动作
     * @author  何欢
     * @time    2017年8月26日 22:05:50    
     * @return  登录页面
     */
    public function Logout(Request $request)
    {
        $request->session()->flush();
        return redirect('/admin/login');
    }

}
